package enumdemo;

import enumdemo.Myenum;

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;

public class Te4st {
    public static void main(String[] args)  {
        //尝试通过反射进行实例化enum对象
        Class<?> c1 = null;
        try {
            //要注意当父类的构造方法未调用时，子类的构造方法是不能被调用的
            c1 = Class.forName("enumdemo.Myenum");
            //枚举类不能够通过反射类进行创建。
            //在指定的类的具有父类时，也应该加上父类形参类型的.class属性
             Constructor  constructor=   c1.getDeclaredConstructor(String.class,int.class,int.class,String.class);
             //获取了相应的构造方法后
            constructor.setAccessible(true);

            Myenum myenum = (Myenum) constructor.newInstance(2,"hong");

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }

    }

}
